package fr.charlott.view;

import java.util.ArrayList;
import java.util.List;

import javax.faces.context.ExternalContext;
import javax.faces.context.FacesContext;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Component;

import fr.charlott.business.dto.SaisonDTO;
import fr.charlott.business.service.SaisonService;

@Component("listeSaisonControler")
@Scope("view")
public class ListeSaisonControler extends CharlottControler {

	private static final long serialVersionUID = 2465999191538831539L;

	private List<SaisonDTO> saisons = new ArrayList<SaisonDTO>();

	private SaisonDTO selectedSaison;
	
	private SaisonService saisonService;

	public ListeSaisonControler() {
		super();
	}

	@Autowired(required = true)
	public ListeSaisonControler(SaisonService saisonService) {
		this();
		this.saisonService = saisonService;
		
		// Initialisation des différentes saisons
		saisons = saisonService.chargerTousLesSaisons();
	}

	// actions

	public String modifierSaison() {
		// Mettre la saison selectionnee dans la session pour le passage par redirection
		ExternalContext externalContext = FacesContext.getCurrentInstance().getExternalContext();
		externalContext.getSessionMap().put(NouvelleSaisonControler.EDITED_SAISON, selectedSaison);

		return "gestionSaisons";
	}
	
	public String supprimerSaison() {
		saisonService.supprimerSaison(selectedSaison);
		return "gestionSaisons";
	}

	// getters - setters

	public List<SaisonDTO> getSaisons() {
		return saisons;
	}

	public SaisonDTO getSelectedSaison() {
		return selectedSaison;
	}

	public void setSelectedSaison(SaisonDTO selectedSaison) {
		this.selectedSaison = selectedSaison;
	}
}
